home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
print
/
isigns50.zip
/
SIGNS50.DOC
< prev
next >
Wrap
Text File
|
1989-11-03
|
21KB
|
450 lines
SIGNS.DOC
Version 5.0
by Robert W. Bloom
26 Sep 89
Release Notice:
Signs and all associated files (Signs, MkFntNdx, font files, etc.) are
freely released to the public for non-profit use. If anybody's going to
profit, it should be me! Anywhat, this is my contribution for all the great
programs I've received from the pipeline. Thanks guys!
Revision History:
Signs:
1.x - March 86, first versions, menu driven. GSigns created.
2.x - May 86, all screen oriented.
3.x - Jun 86, bit mapped font files, released w/MakeFont Version 2.0.
New features: inverse video, user changeable single block character, inter-
character spacing, block_char used for fill in inverse video.
4.x - Oct 86, added bit-mapped output, Library released with 3 font
files (font1, font2, gothfont), MS-DOS version released and patched so that
'Gothfont' fit.
4.2 - Aug 89, patched to compile with TurboPascal v5.0.
5.0 - Sep 89, Redesign of font file interface to use HP LaserJet font
files, elimination of MakeFont and Generic versions for CP/M, addition of a
font index file generator, expanded Epson printer support. Converted old font
files into HP LaserJet-compatible font files. TurboPascal v5.0 specific.
Older versions are still workable, but why bother. Though I still have
my CP/M machine, it doesn't get turned on much.
Background:
I was never happy with the sign- and banner-making programs available
for CP/M. Sure there were a number of good ones, specially 'GOTHIC,' but none
have enough variability to suit me. By variability, I mean the capability to
change sizes, fonts, and paper positioning to create whatever I wanted. What
I really wanted was a 'Print Shop' for CP/M-80. Alas, it's not available and
it looks as if no one is developing any new stuff for my (old) favorite OS.
I though the problem was solved when I ran across a set of two
programs by Ken Crook in Pascal. I was just learning Pascal, so I thought
this would be a good way to get some fun education. Unfortunately, the
program was not written very well - although some good options were present, I
couldn't even compile the programs (called 'sign' and 'banner') as they
wouldn't fit in memory. (CP/M-80, TurboPascal v3.01, 63k, error messages
off.) The main problem was that all of the character fonts were held in
memory at one time. Even eliminating all the symbols and keeping just numbers
and upper case letters yielded a com file of 36k. (Besides, input was taken
from a file not the console, which was a pain.)
Features:
So I decided to start over and write my own. Major features of
my program are:
- Fonts are held in an external HP LaserJet-compatible 'soft' font
file which is read by random access methods. It reads only the required
characters into memory when they are needed. An index to the font file is
required (contains character descriptor data and pointers into the HP file)
which is created by the separate program MkFntNdx.
- Signs and Banners are made by changing an option. They may be
output to the console, a file, or lst: device (printer). Lots of other
options are available. (see below)
- Any HP LaserJet-compatible 'soft' portrait font may be used.
Because of the very-high resolution 300dpi of the LaserJet, many soft fonts
will be 'too big' for screen output. I.e., each dot is turned into a
character position limiting screen output to 80 'dots' wide. To remedy this,
two font sets are supplied: one with characters that are up to 12 units high
counting a two block descender and up to 10 blocks wide; and one which is four
times wider and twice as high. Both are proportionally spaced. The smaller
of the two is readable only with a magnifying glass if actually downloaded to
LaserJet - but it works fine with Signs.
- Font editors are *not* supplied, editing an HP font file is a
very tricky business. 'AlterFnt' and 'QFont' are two shareware-available
editors available. Many soft fonts are also available. I designed one of
supplied fonts, a friend (RK Sparks) did the other.
- Four printers are supported: IDS, Epson, HP and 'dumb'. Dumb
printers can't output in graphics dot-mode. There are four graphic output
densities for the HP and Epson.
- If printing, one can change the cpi and lpi from the menu which
automatically adjusts the printer. Input lines are checked to see if they
will fit. Normal (80) and wide (132) terminals, as well as small (8") and
large (14") printers are correctly handled. The user can even request output
in "reverse video" (White letters, black background instead of black letters
on a white background.)
- The letters of the output sign/banner can be made of the letter
itself, any single character, a 'overstrike' block to make a nice black solid
block or individual dots using the graphics mode of the printer. (Naturally
the graphics dot-mode will create much smaller letters and is strongly printer
dependent.
I think you'll find that the program is self-explanatory. Once
selected, a option does not change until manually changed. This allows
changing just one option quickly. Some options eliminate others.
Files:
READ.ME - introduction to signs.
RWBFONT.FNT, RKSFONT.FNT - HP LaserJet compatible soft font files
RWBFONT.FNX, RKSFONT.FNX - index to above created by MkFntNdx and used
by Signs.
MkFntNdx.PAS - (Make Font Index) source code for font index generator -
asks for input filenames.
SIGNS.PAS - source code for sign generator. Also calls the include
files: CONST.PAS, ASK.PAS, DISP.PAS, PRT.PAS, UTIL.PAS
SIGNS.IN - sample file input, contains all printable characters.
SIGNS.OUT - sample output file from signs.in
SIGNS.DOC - this file.
SIGNS.EXE, MKFNTNDX.EXE - executables
PRINTER2.PAS, PRINTER2.TPU - TurboPascal v5 fix for LST output
Compiling:
TurboPascal v 5.0 was used to compile the program, using the CRT and
PRINTER2 'use' units. A installed Ansi driver is required for the low/high
video calls.
I found a bug in TurboPascal v5.0: the default 'printer' unit in
TURBO.TPL will not output a CHR(26) which is needed when one outputs graphics.
Borland provided the 'printer2' public domain unit which fixes the problem.
This problem was not in TurboPascal v3.
Running:
As a minimum, one needs to have the following files in the default
directory: Signs.exe, one HP LaserJet-compatible soft font file, and a index
to the font file (created by mkfntndx.exe.)
Notes:
- some options are disabled with other options. For instance, if one
selects console output, you don't see any printer options. Or if you enter a
given left margin to use, the output centering option is disabled. (To center
the output after zeroing a previously-given left margin, one has to manually
enter 'y' to centering as a non-zero left margin sets centering to 'no'.)
Non-applicable menu items are not displayed.
- beware of hardware differences in printers. If in doubt, make the
printer type 'dumb' and avoid bit-mapped graphics output.
- Outputting to a file automatically sets the line width to the maximum.
You probably will want to reduce it to something reasonable - especially if
you ask for auto-centering.
Options:
Upon entry to the program one is placed directly in "change parameters" mode.
A options menu is shown: (The actual menu will have inappropriate entries
missing, they will appear as they become pertinent.)
Signs Version: v5.0, 10 Sep 89 Mode: Change Parms
------------------------ Options and I/O Parameters --------------------------
T- Sign type -> Sign I-